Linux 64 位调用规约

调用规约是在关于程序调用和返回的约定,参考维基百科

x86_64

参数寄存器
整数或指针(1-6)RDI, RSI, RDX, RCX, R8, R9
浮点数(1-8)XMM0 - XMM7
更多参数栈(SP)
整数返回值RAX
浮点数返回值XMM0

RAX 的低 32 位为 EAX;EAX 的低 16 位为 AX;AX 的高 8 位为 AH,低8位为 AL。

aarch64

参数寄存器
64位整数或指针(1-8)X0-X7
32位整数W0-W7
单精度浮点数(1-8)S0-S7
双精度浮点数(1-8)D0-D7
更多参数栈(SP)
返回值X0